const context = {
    // 1.属性太多，不建议一个个写
    // get method(){
    //     return this.request.method
    // },
    // get url(){
    //     return this.request.url
    // }
}

// 2.别名太多，可以定义一个方法用于处理别名
function defineProperty(target,name){
    Object.defineProperty(context,name,{
        get(){
            return this[target][name]
        },
        set(value){
            this[target][name] = value
        }
    })
    // koa 使用 delegates 调用 context.__defineGetter__ 和 __defineSetter__ 实现
    // 但是这不是标准语法
    // context.__defineGetter__(name,function(){
    //     return this[target][name]
    // })
}

// 3.初始化别名
defineProperty('request','method')
defineProperty('request','url')
defineProperty('response','body')

module.exports = context